Data increasingly is communicated between computers, such as between a server and a user computer, using Internet Protocol (IP)-based principles. An example of a protocol that can be used to carry IP-based data is point-to-point protocol (PPP) framing of IP packets. That is, IP data packets can be communicated using PPP.
PPP can be used not only for communicating IP packets over wired portions of the Internet, but also to communicate data over wireless transmission paths to user computers that employ wireless communication principles such as but not limited to code division multiple access (CDMA) technology, GSM, wideband CDMA, and other wireless technologies. Such a communication scheme is disclosed in, e.g., co-pending U.S. provisional patent application Ser. No. 60/335,680, owned by the present assignee and incorporated herein by reference.
As disclosed in the above-referenced patent application, to increase bandwidth (i.e., to increase the amount of data per unit time that can be communicated between transmitter and receiver) and decrease latency, the IP packets being transmitted can be partitioned into fragments, with the fragments being sent in parallel over multiple links that are established between the transmitter and the receiver. The fragments are recombined at the receiver. The fragments are allocated to the links in round robin fashion, i.e., the first fragment is sent on the first link, the second fragment is sent on the second link, and so on.
The present invention critically observes that the round robin allocation of fragments can give rise to lost fragments. To explain, consider that the number of links typically is equal to the number of fragments per packet, and further consider that the last fragment of each packet is generally smaller than the others, representing, as it does, a remainder. In the presence of round robin fragment allocation (also referred to as round robin scheduling), this means that the last, smallest fragment of every packet is always scheduled on the same link, essentially rendering these links under-utilized, with the under-utilization being cumulative, i.e., it becomes progressively worse.
The smaller fragment, although having a higher sequence number than the fragments ahead of it in the packet, can arrive at the receiver first, where it is held pending arrival of the remaining fragments of the packet. Were the effects of link under-utilization not cumulative, this would not be a problem because systems typically will hold early-arriving fragments for a limited period. As observed above, however, when using round robin scheduling with the number of links being a multiple of the number of fragments per packet and with the last fragment of a packet being smaller than the other fragments, the effects of under-utilization are cumulative. As a consequence, the difference in arrival times of the smallest fragments vis-a-vis the other fragments of their packets can exceed the data hold time employed by the system, after the elapse of which the held fragment is flushed and, hence, lost. Such lost fragments result in the periodic loss of packets, with the system incorrectly regarding the loss of packets as being due to congestion.
Having made these critical observations, the solution below is provided.